start: 00000000 4E56 0000 link A6, 0 00000004 2F2E 0008 move.l -[A7], [A6 + 0x8] 00000008 4EBA 0016 jsr [PC + 0x16 /* 00000020 */] 0000000C 4E5E unlink A6 0000000E 2E9F move.l [A7], [A7]+ 00000010 4E75 rts 00000012 8A45 or.w D5, D5 00000014 4E54 5259 link A4, -0xFFFFADA7 00000018 504F addq.w A7, 8 0000001A 494E chk.w D4, A6 0000001C 5400 addq.b D0, 2 0000001E 0000 4E56 ori.b D0, 0x56 /* 'V' */ // begin alternate branch 00000020-00000026 fn00000020: 00000020 4E56 FEFA link A6, -0x0106 00000024 4267 clr.w -[A7] // end alternate branch 00000020-00000026 fn00000020: // (misaligned) 00000022 FEFA 4267 .extension 0xEFA <> // unimplemented 00000026 2F3C 7164 2020 move.l -[A7], 0x71642020 /* 'qd ' */ 0000002C 486E FFFA pea.l [A6 - 0x6] 00000030 4EBA 00B2 jsr [PC + 0xB2 /* 000000E4 */] 00000034 3D5F FFFE move.w [A6 - 0x2], [A7]+ 00000038 57C0 seq D0 0000003A 4A00 tst.b D0 0000003C 671C beq +0x1E /* 0000005A */ 0000003E 0CAE 0000 0200 FFFA cmpi.l [A6 - 0x6], 0x200 00000046 5CC1 sge D1 00000048 C001 and.b D0, D1 0000004A 670E beq +0x10 /* 0000005A */ 0000004C 41EE FEFA lea.l A0, [A6 - 0x106] 00000050 43FA 004C lea.l A1, [PC + 0x4C /* 0000009E, value 0x4747275, pstring "true" */] 00000054 20D9 move.l [A0]+, [A1]+ 00000056 3091 move.w [A0], [A1] 00000058 600C bra +0xE /* 00000066 */ label0000005A: 0000005A 41EE FEFA lea.l A0, [A6 - 0x106] 0000005E 43FA 0038 lea.l A1, [PC + 0x38 /* 00000098, value 0x566616C, pstring "false" */] 00000062 20D9 move.l [A0]+, [A1]+ 00000064 3091 move.w [A0], [A1] label00000066: 00000066 206E 0008 movea.l A0, [A6 + 0x8] 0000006A 2F08 move.l -[A7], A0 0000006C 42A7 clr.l -[A7] 0000006E 2F2E 0008 move.l -[A7], [A6 + 0x8] 00000072 486E FEFA pea.l [A6 - 0x106] 00000076 4EBA 002C jsr [PC + 0x2C /* 000000A4 */] 0000007A 201F move.l D0, [A7]+ 0000007C 205F movea.l A0, [A7]+ 0000007E 2140 0042 move.l [A0 + 0x42], D0 00000082 4E5E unlink A6 00000084 2E9F move.l [A7], [A7]+ 00000086 4E75 rts 00000088 8D51 or.w [A1], D6 0000008A 4433 3249 neg.b [A3 + D3.w * 2 + 0x49] 0000008E 4E53 5441 link A3, -0xFFFFABBF 00000092 4C4C 4544 movem.l D2,D6,A0,A2,A6, A4 00000096 000C 0566 ori.b A4, 0x66 /* 'f' */ 0000009A 616C bsr +0x6E /* 00000108 */ 0000009C 7365 moveq.l D1, 0x65 0000009E 0474 7275 6500 subi.w [A4 + <> + D6 * 4], 0x7275 /* 'ru' */ fn000000A4: 000000A4 4E56 FF00 link A6, -0x0100 000000A8 2F0C move.l -[A7], A4 000000AA 206E 0008 movea.l A0, [A6 + 0x8] 000000AE 43EE FF00 lea.l A1, [A6 - 0x100] 000000B2 703F moveq.l D0, 0x3F label000000B4: 000000B4 22D8 move.l [A1]+, [A0]+ 000000B6 51C8 FFFC dbf D0, -0x6 /* 000000B4 */ 000000BA 286E 000C movea.l A4, [A6 + 0xC] 000000BE 41EE FF00 lea.l A0, [A6 - 0x100] 000000C2 2948 0050 move.l [A4 + 0x50], A0 000000C6 397C 0007 004C move.w [A4 + 0x4C], 0x7 000000CC 2F2C 0048 move.l -[A7], [A4 + 0x48] 000000D0 205F movea.l A0, [A7]+ 000000D2 4E90 jsr [A0] 000000D4 2D6C 0070 0010 move.l [A6 + 0x10], [A4 + 0x70] 000000DA 285F movea.l A4, [A7]+ 000000DC 4E5E unlink A6 000000DE 205F movea.l A0, [A7]+ 000000E0 504F addq.w A7, 8 000000E2 4ED0 jmp [A0] fn000000E4: 000000E4 4E56 0000 link A6, 0 000000E8 203C 0000 A89F move.l D0, 0xA89F 000000EE A746 syscall GetToolBoxTrapAddress/GetToolTrapAddress, flags=7 000000F0 2F08 move.l -[A7], A0 000000F2 203C 0000 A0AD move.l D0, 0xA0AD 000000F8 A346 syscall GetOSTrapAddress, flags=3 000000FA B1DF cmpa.l A0, [A7]+ 000000FC 670E beq +0x10 /* 0000010C */ 000000FE 202E 000C move.l D0, [A6 + 0xC] 00000102 A1AD syscall Gestalt, flags=1 00000104 226E 0008 movea.l A1, [A6 + 0x8] fn00000108: 00000108 2288 move.l [A1], A0 0000010A 6026 bra +0x28 /* 00000132 */ label0000010C: 0000010C 41FA 0036 lea.l A0, [PC + 0x36 /* 00000144, value 0x76657273 'vers', cstring "vers" */] 00000110 303C EA51 move.w D0, 0xEA51 00000114 222E 000C move.l D1, [A6 + 0xC] label00000118: 00000118 B298 cmp.l D1, [A0]+ 0000011A 6706 beq +0x8 /* 00000122 */ 0000011C 4A98 tst.l [A0]+ 0000011E 6712 beq +0x14 /* 00000132 */ 00000120 60F6 bra -0x8 /* 00000118 */ label00000122: 00000122 43FA 0020 lea.l A1, [PC + 0x20 /* 00000144, value 0x76657273 'vers', cstring "vers" */] 00000126 D3D0 add.l A1, [A0] 00000128 4ED1 jmp [A1] label0000012A: 0000012A 226E 0008 movea.l A1, [A6 + 0x8] 0000012E 2280 move.l [A1], D0 00000130 4240 clr.w D0 label00000132: 00000132 3D40 0010 move.w [A6 + 0x10], D0 00000136 4E5E unlink A6 00000138 205F movea.l A0, [A7]+ 0000013A 508F addq.l A7, 8 0000013C 4ED0 jmp [A0] label0000013E: 0000013E 303C EA52 move.w D0, 0xEA52 00000142 60EE bra -0x10 /* 00000132 */ 00000144 7665 moveq.l D3, 0x65 00000146 7273 moveq.l D1, 0x73 00000148 0000 0060 ori.b D0, 0x60 /* '`' */ 0000014C 6D61 blt +0x63 /* 000001AF */ 0000014E 6368 bls +0x6A /* 000001B8 */ 00000150 0000 0064 ori.b D0, 0x64 /* 'd' */ 00000154 7379 moveq.l D1, 0x79 00000156 7376 moveq.l D1, 0x76 00000158 0000 0088 ori.b D0, 0x88 0000015C 7072 moveq.l D0, 0x72 0000015E 6F63 ble +0x65 /* 000001C3 */ 00000160 0000 0092 ori.b D0, 0x92 00000164 6670 bne +0x72 /* 000001D6 */ 00000166 7520 moveq.l D2, 0x20 00000168 0000 009E ori.b D0, 0x9E 0000016C 7164 moveq.l D0, 0x64 0000016E 2020 move.l D0, -[A0] 00000170 0000 00E8 ori.b D0, 0xE8 00000174 6B62 bmi +0x64 /* 000001D8 */ 00000176 6420 bcc +0x22 /* 00000198 */ 00000178 0000 011A ori.b D0, 0x1A 0000017C 6174 bsr +0x76 /* 000001F2 */ 0000017E 6C6B bge +0x6D /* 000001EB */ 00000180 0000 0142 ori.b D0, 0x42 /* 'B' */ 00000184 6D6D blt +0x6F /* 000001F3 */ 00000186 7520 moveq.l D2, 0x20 00000188 0000 0164 ori.b D0, 0x64 /* 'd' */ 0000018C 7261 moveq.l D1, 0x61 0000018E 6D20 blt +0x22 /* 000001B0 */ 00000190 0000 0188 ori.b D0, 0x88 00000194 6C72 bge +0x74 /* 00000208 */ 00000196 616D bsr +0x6F /* 00000205 */ label00000198: 00000198 0000 0188 ori.b D0, 0x88 0000019C 0000 0000 ori.b D0, 0x0 000001A0 0000 0000 ori.b D0, 0x0 000001A4 7001 moveq.l D0, 0x01 000001A6 6082 bra -0x7C /* 0000012A */ 000001A8 2278 02AE movea.l A1, [0x000002AE /* ROMBase */] 000001AC 7004 moveq.l D0, 0x04 000001AE 0C69 0075 0008 cmpi.w [A1 + 0x8], 0x75 /* 'u' */ // begin alternate branch 000001B0-000001B8 label000001B0: 000001B0 0075 0008 6712 0C69 ori.w [[A5 + D6 * 8] + 0xC69], 0x8 // end alternate branch 000001B0-000001B8 label000001B0: // (misaligned) 000001B4 6712 beq +0x14 /* 000001C8 */ 000001B6 0C69 0276 0008 cmpi.w [A1 + 0x8], 0x276 // begin alternate branch 000001B8-000001BE label000001B8: 000001B8 0276 0008 6604 andi.w [A6 + D6.w * 8 + 0x4], 0x8 // end alternate branch 000001B8-000001BE label000001B8: // (misaligned) 000001BC 6604 bne +0x6 /* 000001C2 */ 000001BE 5240 addq.w D0, 1 000001C0 6006 bra +0x8 /* 000001C8 */ label000001C2: 000001C2 1038 0CB3 move.b D0, [0x00000CB3 /* MMUFluff/MachineType */] 000001C6 5C80 addq.l D0, 6 label000001C8: 000001C8 6000 FF60 bra -0x9E /* 0000012A */ 000001CC 7000 moveq.l D0, 0x00 000001CE 3038 015A move.w D0, [0x0000015A /* SysVersion */] 000001D2 6000 FF56 bra -0xA8 /* 0000012A */ label000001D6: 000001D6 7000 moveq.l D0, 0x00 label000001D8: 000001D8 1038 012F move.b D0, [0x0000012F /* CPUFlag */] 000001DC 5240 addq.w D0, 1 000001DE 6000 FF4A bra -0xB4 /* 0000012A */ 000001E2 0C38 0004 012F cmpi.b [0x0000012F /* CPUFlag */], 0x4 000001E8 6738 beq +0x3A /* 00000222 */ 000001EA 0838 0004 0B22 btst.b [0x00000B22 /* HWCfgFlags */], 0x4 000001F0 6734 beq +0x36 /* 00000226 */ fn000001F2: 000001F2 204F movea.l A0, A7 000001F4 F280 0000 fnop 000001F8 F327 .extension 0x327 <> // unimplemented 000001FA 3017 move.w D0, [A7] 000001FC 2E48 movea.l A7, A0 000001FE 0C40 1F18 cmpi.w D0, 0x1F18 00000202 6716 beq +0x18 /* 0000021A */ 00000204 0C40 3F18 cmpi.w D0, 0x3F18 label00000208: 00000208 6710 beq +0x12 /* 0000021A */ 0000020A 0C40 3F38 cmpi.w D0, 0x3F38 /* '?8' */ 0000020E 670E beq +0x10 /* 0000021E */ 00000210 0C40 1F38 cmpi.w D0, 0x1F38 00000214 6708 beq +0xA /* 0000021E */ 00000216 7000 moveq.l D0, 0x00 00000218 600E bra +0x10 /* 00000228 */ label0000021A: 0000021A 7001 moveq.l D0, 0x01 0000021C 600A bra +0xC /* 00000228 */ label0000021E: 0000021E 7002 moveq.l D0, 0x02 00000220 6006 bra +0x8 /* 00000228 */ label00000222: 00000222 7003 moveq.l D0, 0x03 00000224 6002 bra +0x4 /* 00000228 */ label00000226: 00000226 7000 moveq.l D0, 0x00 label00000228: 00000228 6000 FF00 bra -0xFE /* 0000012A */ 0000022C 0C78 3FFF 028E cmpi.w [0x0000028E /* ROM85 */], 0x3FFF 00000232 6E1C bgt +0x1E /* 00000250 */ 00000234 303C A89F move.w D0, 0xA89F 00000238 A746 syscall GetToolBoxTrapAddress/GetToolTrapAddress, flags=7 0000023A 2408 move.l D2, A0 0000023C 203C 0000 AB03 move.l D0, 0xAB03 00000242 A746 syscall GetToolBoxTrapAddress/GetToolTrapAddress, flags=7 00000244 203C 0000 0100 move.l D0, 0x100 0000024A B488 cmp.l D2, A0 0000024C 6606 bne +0x8 /* 00000254 */ 0000024E 600A bra +0xC /* 0000025A */ label00000250: 00000250 7000 moveq.l D0, 0x00 00000252 6006 bra +0x8 /* 0000025A */ label00000254: 00000254 203C 0000 0200 move.l D0, 0x200 label0000025A: 0000025A 6000 FECE bra -0x130 /* 0000012A */ 0000025E 1038 021E move.b D0, [0x0000021E /* KbdType */] 00000262 41FA 0016 lea.l A0, [PC + 0x16 /* 0000027A, value 0x3130B02 */] 00000266 2248 movea.l A1, A0 label00000268: 00000268 1218 move.b D1, [A0]+ 0000026A 6700 FED2 beq -0x12C /* 0000013E */ 0000026E B200 cmp.b D1, D0 00000270 66F6 bne -0x8 /* 00000268 */ 00000272 91C9 sub.l A0, A1 00000274 2008 move.l D0, A0 00000276 6000 FEB2 bra -0x14C /* 0000012A */ 0000027A 0313 btst [A3], D1 0000027C 0B02 btst D2, D5 0000027E 0106 btst D6, D0 00000280 0704 btst D4, D3 00000282 0508 btst A0, D2 00000284 0900 btst D0, D4 00000286 7000 moveq.l D0, 0x00 00000288 4A38 0291 tst.b [0x00000291 /* PortBUse */] 0000028C 6B16 bmi +0x18 /* 000002A4 */ 0000028E 1238 01FB move.b D1, [0x000001FB /* SPConfig */] 00000292 0201 000F andi.b D1, 0xF 00000296 0C01 0001 cmpi.b D1, 0x1 0000029A 6608 bne +0xA /* 000002A4 */ 0000029C 2078 02DC movea.l A0, [0x000002DC /* ABusDCE */] 000002A0 1028 0007 move.b D0, [A0 + 0x7] label000002A4: 000002A4 6000 FE84 bra -0x17A /* 0000012A */ 000002A8 0C38 0002 012F cmpi.b [0x0000012F /* CPUFlag */], 0x2 000002AE 6D16 blt +0x18 /* 000002C6 */ 000002B0 7000 moveq.l D0, 0x00 000002B2 1038 0CB1 move.b D0, [0x00000CB1 /* MMUType */] 000002B6 0C00 0001 cmpi.b D0, 0x1 000002BA 670C beq +0xE /* 000002C8 */ 000002BC 0C00 0003 cmpi.b D0, 0x3 000002C0 6D04 blt +0x6 /* 000002C6 */ 000002C2 5340 subq.w D0, 1 000002C4 6002 bra +0x4 /* 000002C8 */ label000002C6: 000002C6 7000 moveq.l D0, 0x00 label000002C8: 000002C8 6000 FE60 bra -0x19E /* 0000012A */ 000002CC 303C A89F move.w D0, 0xA89F 000002D0 A746 syscall GetToolBoxTrapAddress/GetToolTrapAddress, flags=7 000002D2 2408 move.l D2, A0 000002D4 203C 0000 A88F move.l D0, 0xA88F 000002DA A746 syscall GetToolBoxTrapAddress/GetToolTrapAddress, flags=7 000002DC 2038 0108 move.l D0, [0x00000108 /* MemTop */] 000002E0 B488 cmp.l D2, A0 000002E2 670A beq +0xC /* 000002EE */ 000002E4 598F subq.l A7, 4 000002E6 3F3C 0016 move.w -[A7], 0x16 000002EA A88F syscall OSDispatch 000002EC 201F move.l D0, [A7]+ label000002EE: 000002EE 6000 FE3A bra -0x1C4 /* 0000012A */